/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import javax.swing.ImageIcon;
import javax.swing.JPanel;

/**
 *
 * @author william
 */
public abstract class ArregloFichas extends JPanel {

    protected ImageIcon vacio, ficha;
    protected Ficha[][] casillas;
    protected int x, y;

    public ArregloFichas() {
    }
    protected int b, a;

    public ArregloFichas(int a, int b) {
        this.b = b;
        this.a = a;

        int x, y;
        
        cargarVacio();

        casillas = new Ficha[this.a][this.b];

        for (int i = 0; i < this.a; i++) {
            for (int j = 0; j < this.b; j++) {
                casillas[i][j] = new Ficha(this);
                casillas[i][j].setFondo(vacio);
                x = (j * 50);//+1;
                y = (i * 65);//+1;
                casillas[i][j].setBounds(x, y, 50, 65);
                this.add(casillas[i][j]);
            }
        }
    }

    public ImageIcon getFicha() {
        return ficha;
    }

    public void setFicha(ImageIcon ficha) {
        this.ficha = ficha;
    }

    public Ficha[][] getCasillas() {
        return casillas;
    }

    public void setCasillas(Ficha[][] casillas) {
        this.casillas = casillas;
    }

    public int[] getCoordenadas(Ficha casilla) {
        int[] coordenadas = new int[2];

        for (int i = 0; i < this.a; i++) {
            for (int j = 0; j < this.b; j++) {
                if (this.casillas[i][j] == casilla) {
                    coordenadas[0] = i;
                    coordenadas[1] = j;
                    this.x = i;
                    this.y = j;
                }
            }
        }
        System.out.println(coordenadas[0] + " " + coordenadas[1]);
        return coordenadas;
    }

    protected abstract void cargarVacio();

    protected static ImageIcon cargarFondo(String ruta) {
        java.net.URL localizacion = Mesa.class.getResource(ruta);
        if (localizacion != null) {
            return new ImageIcon(localizacion);
        } else {
            System.err.println("No se ha encontrado el archivo: " + ruta);
            return null;
        }
    }
    
    public void cargarFicha(String idFicha)
    {
        this.ficha=cargarFondo("/imagenes/"+idFicha+".png");
    }

    public abstract void pintarVacio();
}
